--[[
    点击、滑动
]]
function RxTouch(x, y)
  -- touchDown(x, y)
  -- mSleep(30);
  -- touchUp(x, y)
  randomTap(x + 1, y + 1, 5, sysInit.touchUI, 1, 1000) -- 随机点击
  touchUp(x + 1, y + 1)
  mSleep(sysInit.tapms)
end

-- 让键盘消失，需要双击
function RxTouchCloceKeyborad()
  local x = 1
  local y = 160
  -- touch():on(x,y):off()
  -- mSleep(1);
  -- touch():on(x,y):off()
  randomTap(x, y, 10, sysInit.touchUI, 1, 1000) -- 随机点击
  mSleep(4000)
end

-- 点击
function RxTouchPointTable(table)
  if table.title then
    RxToast(table.title)
    mSleep(sysInit.tapms)
  end
  RxLog(".......[RxTouch] RxTouchPointTable table->pointScale=" .. table.pointScale)
  local x, y = RxLocationPointTableScale(table)
  RxLog(".......[RxTouch] RxTouchPointTable x=" .. x .. " y=" .. y) --测试
  RxTouch(x, y)
end

-- 根据颜色确定关系，然后根据一个位置 进行点击
function RxTouchWithColor(table, testView)
  local rtn, x, y = 0, 0, 0
  if testView then
    -- 测试点击目标
    local x1, y1 = RxLocationPointTableScale(table)
    RxTestPoint({x1, y1})
  else
    -- 根据 table表、区域多颜色 进行点击
    rtn, x, y = RxFindMultiColorTable(table)
    if rtn == 1 then
      -- RxLog('.......[RxTouch] title=='..table.title) -- 测试
      if table.point then
        RxTouchPointTable(table)
      else
        RxTouch(x, y)
      end
    end
  end
  mSleep(sysInit.tapms)
  return rtn
end

-- 滑动
function RxTouchMove(x, y, moveX, moveY)
  touchDown(x, y)
  mSleep(sysInit.tapms)
  --注意一次滑动的坐标间隔不要太大，不宜超过 50 像素
  touchMove(moveX, moveY)
  touchUp(moveX, moveY)
  -- 下面的方法 使用有误
  -- randomsTap(moveX - x, moveY - y, 1, "click.png", 1, 300) -- 随机滑动(带有抖动)
  mSleep(sysInit.tapms)
end

-- 滑动 参数：table表
function RxTouchMoveTable(table)
  return RxTouchMove(table.x, table.y, table.moveX, table.moveY)
end

-- 屏幕中心开始 向下滑动： 置顶
function RxTouchMoveScreenTop(distance)
  distance = distance or 50 -- 默认50，可不写参数
  x = width / 2
  y = height / 2
  RxTouchMove(x, y, x, y + distance)
end

-- 屏幕中心开始 像左滑动：置右
function RxTouchMoveScreenRight(distance)
  distance = distance or 50 -- 默认50，可不写参数
  x = width / 2
  y = height / 2
  RxTouchMove(x, y, x - distance, y)
  -- moveTowards(x, y, 0, distance, 10) --从坐标(500,500)向上滑动 300
end

function RxTouchMoveScreenLeft(distance)
  distance = distance or 50 -- 默认50，可不写参数
  x = width / 2
  y = height / 2
  RxTouchMove(x - distance, y, x, y)
  -- moveTowards(x, y, -10, distance, 10) --从坐标(500,500)向上滑动 300
end

-- 点击： point = {x,y}
function RxScaleTouch(androidPoint, iosPoint)
  local sizeTable = androidPoint -- android / 模拟器
  local types = sysInit.deviceType
  if types == 1 then
    sizeTable = iosPoint -- ios
  end
  RxTouch(RxLocationPointScale(sizeTable[1], sizeTable[2]))
end

-- 点击： size = {x1,y1, x2, y2}
function RxScaleSizeTouch(androidSize, iosSize)
  local sizeTable = androidSize -- android / 模拟器
  local types = sysInit.deviceType
  if types == 1 then
    sizeTable = iosSize -- ios
  end
  local x1, y1, x2, y2 = RxLocationScale(sizeTable[1], sizeTable[2], sizeTable[3], sizeTable[4])

  local lastX = x1 + math.floor((x2 - x1) / 2)
  local lastY = y1 + math.floor((y2 - y1) / 2)
  RxTouch(lastX, lastY)
end
